home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / emulation / ppclibemu / history next >
Text File  |  1999-05-17  |  12KB  |  224 lines

  1. ppc.library emulation history
  2. =============================
  3.  
  4. (kern): changes are relevant for PowerUp kernel emulation only
  5. (lib): changes are relevant for M68k library only
  6.  
  7.  
  8. - 0.6d / ppc.library 46.16 (13.05.99)
  9. o MEMF_NOCACHEPPC,MEMF_NOCACHEM68K,MEMF_WRITETHROUGHPPC and
  10.   MEMF_WRITETHROUGHM68K are supported for PPCAllocVec(), PPCAllocMem()
  11.   and PPCCreatePool() (M68k and PPC). Ok... not really supported, but
  12.   emulated by using Chip-RAM. :)
  13. o PPCGetAttrs(M68k) and PPCGetAttr(PPC) return 0x57415250 ('WARP') for
  14.   PPCINFOTAG_EMULATION (=0x8001f0ff), which allows a program to distinguish
  15.   the emulation library from the original.
  16. o (lib) PPCCreateTask(): Don't allocate new memory for a second PPC task
  17.   invocation with the same ELF object. Only PROGBITS sections are reloaded
  18.   from disk to ensure data consistency. NOBITS sections are simply cleared.
  19. o (lib) ELF sections are already loaded and relocated on PPCLoadObject().
  20.   This guarantees that PPCGetObjectAttrs() works as expected before
  21.   PPCCreateTask() was called.
  22. o (lib) PPCRead/Write/Byte/Word/Long() flush the data cache on PPC side.
  23.   PPCWriteLongFlush() additionally invalidates the PPC instruction cache.
  24. o (lib) Fix for SAS/C HunkObj-format, which uses the illegal version 0
  25.   in e_ident[EI_VERSION].
  26. o (kern) New functions: PPCReadByte,PPCReadWord,PPCReadLong,PPCWriteByte,
  27.   PPCWriteWord and PPCWriteLong.
  28.  
  29. - 0.6c / ppc.library 46.16 (23.04.99)
  30. o (lib) Enforcer hit fixed, when library is opened by a program for the
  31.   first time.
  32.  
  33. - 0.6b / ppc.library 46.15 (18.04.99)
  34. o (lib) Alloc/Free functions call the appropriate PPC-functions now,
  35.   by doing a context-switch. This ensures that the memory functions
  36.   on the PPC- and on the 68k-side behave exactly the same.
  37. o (lib) Support for pooled memory: PPCAllocPooled(),PPCFreePooled(),
  38.   PPCAllocVecPooled(),PPCFreeVecPooled(),PPCCreatePool(),PPCDeletePool().
  39.  
  40. - 0.6a / ppc.library 46.14 (14.04.99)
  41. o (kern) PPCFindTask() returns PowerUp TaskObject instead WarpOS TaskPPC.
  42. o (kern) PPCSignal() expects PowerUp TaskObject instead WarpOS TaskPPC.
  43.  
  44. - 0.6 / ppc.library 46.13 (11.04.99)
  45. o This version of the emulation library REQUIRES powerpc.library V15!
  46. o (lib) MPSemaphore protection of library base caused a wrong Lib-OpenCnt,
  47.   which had the effect that the 0.5d library could never be expunged.
  48. o (kern) The optional PPC MsgPort was not deleted on task exit.
  49. o (kern) Pooled memory, as introduced by WarpOS V4, is supported. The
  50.   dummy functions are replaced by real ones: PPCAllocPooled(),
  51.   PPCAllocVecPooled(),PPCCreatePool(), PPCDeletePool(),PPCFreePooled(),
  52.   PPCFreeVecPooled().
  53. o (kern) PPCFindName(), PPCFindNameSync().
  54. o (kern) Semaphore functions: PPCAttemptSemaphore, PPCAttemptSemaphoreByName,
  55.   PPCAttemptSemaphoreShared, PPCCreateSemaphore, PPCDeleteSemaphore,
  56.   PPCObtainSemaphore, PPCObtainSemaphoreByName, PPCObtainSemaphoreShared,
  57.   PPCReleaseSemaphore.
  58. o (kern) Cache support: PPCCacheFlush, PPCCacheFlushAll, PPCCacheInvalid.
  59. o (kern) PPCRawDoFmt().
  60.  
  61. - 0.5d / ppc.library 46.12 (10.04.99)
  62. o The first try of the PowerUp Message System Emulation seems to be working!
  63.   Currently all messages and message ports are allocated in Chip-RAM and
  64.   the performance is some magnitudes behind the original ppc.library,
  65.   but it ran successfully through all tests (e.g. msg2, msg2old, msg3,
  66.   msg5 and msg7 by Ralph Schmidt - the other two have bugs).
  67.   The code is already prepared to run in Fast-RAM, which I might try
  68.   in a future release.
  69. o (kern) PowerUp Message System supported functions:
  70.   PPCCreatePort(), PPCDeletePort(), PPCObtainPort(), PPCReleasePort(),
  71.   PPCWaitPort(), PPCCreateMessage(), PPCDeleteMessage(), PPCGetMessage(),
  72.   PPCGetMessageAttr(), PPCReplyMessage(), PPCSendMessage().
  73. o (lib) PowerUp Message System supported functions:
  74.   PPCCreatePort(), PPCDeletePort(), PPCObtainPort(), PPCReleasePort(),
  75.   PPCWaitPort(), PPCCreateMessage(), PPCDeleteMessage(), PPCGetMessage(),
  76.   PPCGetMessageAttr(), PPCReplyMessage(), PPCSendMessage().
  77. o (lib) PPCCreateTask():
  78.   PPCTASKTAG_INPUT/OUTPUT/ERRORHANDLE overrule NP_xxx tags. It was the
  79.   other way around before.
  80.   New PPCCreateTask() tags: PPCTASKTAG_STACKSIZE, STARTUP_MSG,
  81.   STARTUP_MSGDATA, STARTUP_MSGLENGTH, STARTUP_MSGID, MSGPORT.
  82. o (lib) PPCCreateTask() supports asynchronous PPC tasks.
  83. o (lib) PPCDeleteTask() - untested.
  84. o (lib) PPCGetTaskAttrs(). New tags: PPCTASKINFOTAG_TASK, VALUEPTR,
  85.   NAME, PRIORITY, STACKSIZE, INPUTHANDLE, OUTPUTHANDLE, ERRORHANDLE,
  86.   ELFOBJECT, STARTUP_MSG, STARTUP_MSGDATA, STARTUPMSG_LENGTH,
  87.   STARTUP_MSGID, STARTUP_MSGPORT, SIGALLOC, SIGWAIT, SIGRECVD,
  88.   WAITFINISHTASK. The hook and PPC-registers are not supported. Most
  89.   tags are untested.
  90. o (kern) Startup code for PPC tasks creates a PPCMsgPort on demand (tag
  91.   PPCTASKTAG_MSGPORT). Cleanup code replies the startup message (tag
  92.   PPCTASKTAG_STARTUP_MSG).
  93. o (kern) PPCGetTaskAttr(). New tags supported: PPCTASKTAG_STARTUP_MSG,
  94.   PPCTASKTAG_STARTUP_MSGDATA, PPCTASKTAG_STARTUP_MSGLENGTH,
  95.   PPCTASKTAG_STARTUP_MSGID and PPCTASKTAG_MSGPORT.
  96. o (lib) PPCCacheInvalidE() and PPCCacheTrashE(). Fixed some bugs from
  97.   the original ppc.library in these functions.
  98. o (lib) When debugging mode for the library is enabled, the names of
  99.   still unimplemented 68k-functions will be displayed.
  100.  
  101. - 0.5c / ppc.library 46.11 (20.03.99)
  102. o Removed PPCAlert(), PPCPutMessage() and PSYSCALL_xxx(), which are
  103.   not accessible in the original kernel.
  104.  
  105. - 0.5b / ppc.library 46.10 (18.02.99)
  106. o There has to be one EXTUSERDATA for every task. Programs using
  107.   ixemul.elf still don't work.
  108. o Increased default stack size used by LoadSeg-patch from 16k to 64k.
  109.  
  110. - 0.5a / ppc.library 46.9 (26.01.99)
  111. o The EXTUSERDATA tag is supported. ixemul.elf based programs have a
  112.   chance to work now.
  113. o (kern) PPCGetTaskAttr() got new tags: PPCTASKINFOTAG_NAME,
  114.   PPCTASKINFOTAG_PRIORITY, PPCTASKTAG_STACKSIZE, PPCTASKTAG_EXTUSERDATA,
  115.   PPCTASKINFOTAG_USEDSTACKSIZE, PPCTASKINFOTAG_INPUTHANDLE,
  116.   PPCTASKINFOTAG_OUTPUTHANDLE, PPCTASKINFOTAG_ERRORHANDLE and
  117.   PPCTASKINFOTAG_ELFOBJECT.
  118. o (kern) New function PPCSetTaskAttr(). Supported tags: PPCTASKINFOTAG_NAME,
  119.   PPCTASKINFOTAG_PRIORITY, PPCTASKTAG_EXTUSERDATA,
  120.   PPCTASKINFOTAG_INPUTHANDLE, PPCTASKINFOTAG_OUTPUTHANDLE,
  121.   PPCTASKINFOTAG_ERRORHANDLE.
  122.  
  123. - 0.5 / ppc.library 46.8 (24.01.99)
  124. o Possibility to start ELF objects directly under WarpOS without runelf!
  125.   The emulation library installs its own ELF-LoadSeg patch, which works
  126.   nearly in the same way as with the original library. Only difference:
  127.   The message system is not used. This feature was only for vbcc-
  128.   compatibily anyway, and I know for sure that vbcc no longer needs it. :)
  129. o (lib) PPCCacheClearE() is supported, because it's used by the LoadSeg-
  130.   patch, for example.
  131.  
  132. - 0.4c / ppc.library 46.7 (23.01.99)
  133. o (kern) Fixed PPCGetAttr(). It was erroneously implemented as
  134.   PPCGetAttrs() in 0.4 and had some bugs anyway. Now PLL is much more
  135.   precise than with the original.
  136. o (kern) Task support functions: PPCFindTask(), PPCFinishTask() and
  137.   PPCGetTaskAttr(). PPCGetTaskAttr currently only knows about the
  138.   PPCTASKTAG_STACKSIZE tag, others will generate a NULL return value.
  139. o Common symbols are no longer ignored. Space in the .bss section will
  140.   be assigned for them. This was one of the major reasons for most
  141.   crashes under earlier versions! Unlike vbcc and SAS/C, gcc (or egcs?)
  142.   uses common symbols (since some time?).
  143. o (kern) PowerUp ELF library support:
  144.   PPCOpenLibrary(), PPCCloseLibrary(), PPCGetLibSymbol().
  145. o New method of starting PPC tasks. Still synchronous only, but the
  146.   function is already prepared for asynchronous tasks.
  147. o (lib) More tags supported by PPCCreateTask(): PPCTASKTAG_ERROR,
  148.   PPCTASKTAG_BREAKSIGNAL,PPCTASKTAG_INPUTHANDLE,PPCTASKTAG_OUTPUTHANDLE,
  149.   PPCTASKTAG_ERRRORHANDLE,PPCTASKTAG_NAME,PPCTASKTAG_PRIORITY,
  150.   PPCTASKTAG_ARG5-ARG8, NP_Input,NP_Output,NP_Error,NP_CloseInput,
  151.   NP_CloseOutput,NP_CloseError.
  152. o (lib) The argument pointer of PPCRunObject() was not recognized!
  153. o (lib) All memory allocations are done with 32-byte alignment now. There
  154.   were some dangeours 4-byte aligments left in earlier versions.
  155.  
  156. - 0.4b / ppc.library 46.6 (05.01.99)
  157. o A separa